#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
修复 PyTorch TorchDynamo 循环导入问题的脚本
适用于 PyTorch 2.7.1 版本
"""

import os
import sys

def fix_torch_dynamo_issue():
    """
    修复 PyTorch TorchDynamo 循环导入问题
    """
    print("正在修复 PyTorch TorchDynamo 循环导入问题...")
    
    # 方法1: 设置环境变量禁用 TorchDynamo
    os.environ['TORCH_DYNAMO_DISABLE'] = '1'
    print("✓ 已设置环境变量 TORCH_DYNAMO_DISABLE=1")
    
    # 方法2: 在代码中禁用 TorchDynamo
    try:
        import torch
        print(f"✓ PyTorch 版本: {torch.__version__}")
        
        # 禁用 TorchDynamo
        if hasattr(torch, '_dynamo'):
            torch._dynamo.config.suppress_errors = True
            torch._dynamo.config.disable = True
            print("✓ 已禁用 TorchDynamo")
        
        # 设置编译模式为默认
        torch._dynamo.config.optimize_ddp = False
        print("✓ 已设置优化配置")
        
    except Exception as e:
        print(f"⚠ 设置 TorchDynamo 配置时出现警告: {e}")
    
    print("\n修复完成！现在可以正常运行 PyTorch 代码了。")
    print("\n使用方法:")
    print("1. 在运行你的代码之前，先运行这个脚本")
    print("2. 或者在代码开头添加以下代码:")
    print("   import os")
    print("   os.environ['TORCH_DYNAMO_DISABLE'] = '1'")
    print("   import torch")
    print("   torch._dynamo.config.disable = True")

if __name__ == "__main__":
    fix_torch_dynamo_issue() 